package com.arpa.wms.domain.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;


/**
 * <p>
 * 员工费用明细
 * </p>
 *
 * @author rfwang
 * @since 2021-07-01
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@ApiModel(value="StaffCosts对象", description="员工费用明细")
@TableName("wms_staff_costs")
public class StaffCosts extends BasicEntity {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "数据标识")
    @TableField("code")
    private String code;

    @ApiModelProperty(value = "所属机构")
    @TableField("group_code")
    private String groupCode;

    @ApiModelProperty(value = "仓库标识")
    @TableField("warehouse_code")
    private String warehouseCode;

    @ApiModelProperty(value = "仓库名称")
    @TableField("warehouse_name")
    private String warehouseName;

    @ApiModelProperty(value = "所属货主")
    @TableField("shipment_code")
    private String shipmentCode;

    @ApiModelProperty(value = "货主名称")
    @TableField("shipment_name")
    private String shipmentName;

    @ApiModelProperty(value = "计费日期")
    @TableField("gmt_billing")
    private LocalDateTime gmtBilling;

    @ApiModelProperty(value = "费用类型：pack打包")
    @TableField("fee_type")
    private String feeType;

    @ApiModelProperty(value = "作业人标识")
    @TableField("party_code")
    private String partyCode;

    @ApiModelProperty(value = "作业人名称")
    @TableField("staff_name")
    private String staffName;

    @ApiModelProperty(value = "用工类型")
    @TableField("employment_type")
    private String employmentType;

    @ApiModelProperty(value = "劳务外包方")
    @TableField("outsourcer")
    private String outsourcer;

    @ApiModelProperty(value = "电话")
    @TableField("phone")
    private String phone;

    @ApiModelProperty(value = "计费方式:days天, hours工时, pieces件")
    @TableField("billing_method")
    private String billingMethod;

    @ApiModelProperty(value = "计费方式标识")
    @TableField("billing_method_code")
    private String billingMethodCode;

    @ApiModelProperty(value = "计费单价")
    @TableField("billing_price")
    private BigDecimal billingPrice;

    @ApiModelProperty(value = "计费量")
    @TableField("billing_quantity")
    private BigDecimal billingQuantity;

    @ApiModelProperty(value = "金额；计费量*计费单价")
    @TableField("amount_money")
    private BigDecimal amountMoney;

    @ApiModelProperty(value = "劳务外包方名称")
    @TableField("outsourcer_name")
    private String outsourcerName;

    @ApiModelProperty(value = "备注")
    @TableField(exist = false)
    private String remark;

    @ApiModelProperty(value = "奖励金额")
    @TableField("reward_amount")
    private BigDecimal rewardAmount;

    @ApiModelProperty(value = "惩罚金额")
    @TableField("punish_amount")
    private BigDecimal punishAmount;


}
